package com.shop.cereshop.admin.dao.recommend;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.shop.cereshop.admin.param.recommend.RecommendStatusPageParam;
import com.shop.cereshop.admin.param.recommend.RecommendTrendsParam;
import com.shop.cereshop.commons.domain.recommend.CereRecommendComment;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 种草评论DAO
 *
 * @author
 */
@Mapper
public interface CereRecommendCommentDAO extends BaseMapper<CereRecommendComment> {

    /**
     * 根据评论ID删除评论
     *
     * @param recommendCommentId 评论ID
     * @return 删除的记录数
     */
    int deleteComment(@Param("recommendCommentId") Long recommendCommentId);

    /**
     * 根据根评论ID删除所有子评论
     *
     * @param rootCommentId 根评论ID
     * @return 删除的记录数
     */
    int deleteCommentByRootCommentId(@Param("rootCommentId") Long rootCommentId);

    /**
     * 根据父评论ID删除所有子评论
     *
     * @param parentCommentId 父评论ID
     * @return 删除的记录数
     */
    int deleteCommentByParentCommentId(@Param("parentCommentId") Long parentCommentId);

    /**
     * 根据评论ID获取评论信息
     *
     * @param recommendCommentId 评论ID
     * @return 评论信息
     */
    CereRecommendComment getCommentById(@Param("recommendCommentId") Long recommendCommentId);

    /**
     * 分页获取用户所有的评论信息
     */
   List<CereRecommendComment> getUserAllComments(@Param("param")RecommendTrendsParam param);

    Integer updateStatue(@Param("param") RecommendStatusPageParam param);
}
